// #region [提取店铺名称]
/**
 * 提取商品店铺名称，兼容多市场（USA/GBR/CAN/AUS/JPN/MEX/SAU）
 * @param doc 浏览器DOM Document对象
 * @param marketplace 市场标识符（如 USA、JPN、MEX、SAU）
 * @returns 清理后的店铺名称，未找到则返回空字符串
 */
export function extractShopName(doc: Document, marketplace: string): string {
  // 通用步骤：获取核心店铺名称元素（id="bylineInfo"的a标签）
  const shopNameElement = doc.querySelector("a#bylineInfo");
  if (!shopNameElement) return "";

  let rawText = shopNameElement.textContent?.trim() || "";
  if (!rawText) return "";

  // 按市场匹配文本清理规则
  switch (marketplace) {
    // 英文市场（USA/GBR/CAN/AUS）
    case "USA":
    case "GBR":
    case "CAN":
    case "AUS":
      if (rawText.startsWith("Visit the ") && rawText.endsWith(" Store")) {
        return rawText.replace("Visit the ", "").replace(" Store", "").trim();
      } else if (rawText.startsWith("Brand: ")) {
        return rawText.replace("Brand: ", "").trim();
      } else if (rawText.includes(":")) {
        const [label, value] = rawText.split(":");
        return value.trim();
      }
      return rawText;

    // 日语市场（JPN）
    case "JPN":
      if (rawText.startsWith("ブランド: ")) {
        return rawText.replace("ブランド: ", "").trim();
      } else if (rawText.endsWith("のストアを表示")) {
        return rawText.replace("のストアを表示", "").trim();
      }
      return rawText;

    // 西班牙语市场（MEX）
    case "MEX":
      if (rawText.startsWith("Visita la tienda de ")) {
        return rawText.replace("Visita la tienda de ", "").trim();
      } else if (rawText.startsWith("Marca: ")) {
        return rawText.replace("Marca: ", "").trim();
      } else if (rawText.includes(":")) {
        const [label, value] = rawText.split(":");
        return value.trim();
      }
      return rawText;

    // 阿拉伯语市场（SAU）
    case "SAU":
      if (rawText.startsWith("قم بزيارة متجر")) {
        const cleanedShopName = rawText.replace("قم بزيارة متجر", "").trim();
        console.debug(
          `DEBUG - Raw shop text: '${rawText}', Cleaned shop name: '${cleanedShopName}'`
        );
        return cleanedShopName;
      }
      return rawText;

    // 西班牙语市场（FRA）
    case "FRA":
      const fraRegexStore = /Visit the (\w+) Store/i; // 核心正则
      const fraShopNameMath = rawText.match(fraRegexStore);
      const fraShopName = fraShopNameMath?.[1];
      if (fraShopName) {
        return fraShopName.trim();
      } else if (rawText.startsWith("Visiter la boutique")) {
        return rawText.replace("Visiter la boutique", "").trim();
      } else if (rawText.startsWith("Marque : ")) {
        return rawText.replace("Marque : ", "").trim();
      } else if (rawText.startsWith("Marque: ")) {
        return rawText.replace("Marque: ", "").trim();
      } else if (rawText.includes(":")) {
        const [label, value] = rawText.split(":");
        return value.trim();
      }
      return rawText;
    // 德国市场（DEU）
    case "DEU":
      const deRegexStore = /Besuche den (\w+)-Store/i; // 核心正则
      const deShopNameMath = rawText.match(deRegexStore);
      const deShopName = deShopNameMath?.[1];
      if (deShopName) {
        return deShopName.trim();
      } else if (rawText.startsWith("Marke: ")) {
        return rawText.replace("Marke: ", "").trim();
      } else if (rawText.startsWith("Marke : ")) {
        return rawText.replace("Marke : ", "").trim();
      }else if (rawText.includes(":")) {
        const [label, value] = rawText.split(":");
        return value.trim();
      }
      return rawText;

    // 未匹配市场：返回原始文本（兜底）
    default:
      return rawText;
  }
}
// #endregion
